Displaying information having headers or labels on a display device display pane

ABSTRACT

Computer-implemented methods, apparatus, and systems implementing techniques for displaying labels included in a body of content are presented. Part of a portion of a body of content is displayed in a display area. The body of content includes a label for the portion, and the label has a normal position adjacent to and not overlapping the portion in the body of content. The label is displayed in the display area in the normal position if doing so places the label fully within the display area. The label is displayed at a separate location only if displaying the label in the normal position does not place the label fully within the display area and only while any non-trivial part of the portion is displayed in the display area

BACKGROUND

The present invention relates to displaying information on an electronic device in an interactive system.

Electronic devices, such as personal computers and personal digital assistants (PDAs), typically include a display to provide information (e.g., documents or directories of files) to a user. A user interface can present information on the display in one or more display panes. The viewing area of every pane is of a finite extent, so when a large amount of information is being displayed to a user, only part of the information typically is displayed in the pane at any given time.

User interfaces often allow a user to scroll through information along one or more dimensions. Scrolling allows a user to bring a section of the information that previously was out of sight into the pane. If a user cannot view all of the information simultaneously, it can be difficult for the user to keep track of what section of the information they are viewing.

A body of information is commonly organized into multiple (possibly overlapping) subsets of information that have associated visible labels, such as headings or names. For example, word-processing documents stored in a file system typically are arranged into named folders, the names of which are displayed in a user interface for the file system. Each document typically includes an associated filename or title that also is displayed. Within an individual document, sections and subsections typically have associated headings and subheadings that are displayed in a word-processing application. In a spreadsheet, a cell of information can have two or more associated headings, such as one heading for the column in which the cell is located, and one for the row.

When the information displayed in the pane of a conventional user interface is scrolled, the visible labels associated with subsets of the information scroll along with the information because the labels are part of the information. Some labels provide contextual cues (e.g., headings or directory names), and some labels provide details (e.g., the size or date of creation of a file) about the information with which they are associated.

Some user interfaces provide a separate window that displays contextual information for primary information being displayed in a main window. For example, in a file system, a directory tree often is displayed while a user views the contents of a folder. In a word-processing application, a listing of headings and subheadings in a document can be displayed in a separate pane while the user is editing the document. In a spreadsheet application, rows, columns, or both can be frozen so that they do not scroll with the other cells in a spreadsheet.

Certain display environments, in which the display of information is not controlled by a user, display a label when any portion of information with which the label is associated is visible. For example, a non-interactive display environment exists for displaying information on a television screen. The information is scrolled in a display area on the screen, and visible labels associated with subsets of the information scroll along with the information. When certain labels (e.g., start times in a directory of television programs) reach the top of the display area, the label is fixed while the subset of information continues to scroll. A viewer does not have control over the display of the information in this non-interactive display environment.

Some computer programs allow a user to place a comment in a document. The Adobe® Acrobat® application allows a user to place a comment in a document by adding an electronic sticky note. When displayed, a sticky note overlaps the content of the document and does not affect the original layout of the document. The sticky note can be displayed in a normal display position overlying a portion of the page on which the note is located. If the normal display position of the note is visible, the note scrolls with the content. If the normal display position of the note is not visible, but part of the page on which the note is located is visible, the note remains visible at an edge of the display area as the page is scrolled. When the page scrolls out of view, the note scrolls out of view as well. Highlighting can indicate specific words or lines in the document to which the sticky note is related, but the display behavior of the note is based on the page on which the note is placed, rather than on the highlighted text.

SUMMARY

In one aspect, the invention features computer-implemented methods and apparatus, including computer program products, implementing techniques for displaying information. A user-selected part of a first portion of a body of content is displayed in a display area according to a rendering of the body of content. The body of content includes a first label for the first portion, and the rendering places the first label at a normal position adjacent to and not overlapping the first portion in the body of content. The first label is displayed in the display area in the normal position relative to the first portion if doing so places the first label fully within the display area. The first label is displayed at a separate location only if to displaying the first label in the normal position does not place the first label fully within the display area and only while any non-trivial part of the first portion is displayed in the display area. The separate location is distinct from the normal position.

Particular implementations can include one or more of the following features. A user-selected part of a second portion of the body of content is displayed in the display area according to the rendering of the body of content. The body of content includes a second label for the second portion, and the rendering places the second label at a normal position adjacent to and not overlapping the second portion in the body of content. The second label is distinct from the first label, and the second portion includes the first portion. The second label is displayed in the display area in the normal position relative to the second portion if doing so places the second label fully within the display area. The second label is displayed at the separate location only if displaying the second label in the normal position relative to the second portion does not place the second label fully within the display area and only while any non-trivial part of the second portion is displayed in the display area. The separate location is distinct from the normal position relative to the second portion. The first label is displayed adjacent to the second label while both labels are displayed at the separate location. The first label is displayed adjacent to the second label in one of (i) a normal positional relationship and (ii) a space-saving positional relationship.

The separate location is one of an edge of the display area and an auxiliary display area. The first label is displayed as a semi-transparent background in the display area. The body of content is generated dynamically. The first label displayed at the separate location is visually differentiated from the first label displayed in the normal position. A number of labels displayed at the separate location, an area used to display labels at the separate location, or both, are limited. The user-selected part is a proper subset of the first portion. The body of content is a word-processing document, the first label is a heading, and the first portion lies between the first label and a second label. The first portion is one of a figure, a table, and a text box, and the first label is a caption. The first portion is a set of images, each image representing a page in a document, and the first label includes a name of the document.

An end of the first portion is indicated by an explicit end marker in the body of content. The first portion is scrolled to display the user-selected part, where the scrolling can be in two directions. The separate location is selected according to a relative relationship of the normal display position to the first portion. If the normal display position is below the first portion, a bottom edge of the display area is selected as the separate location, if the normal display position is above the first portion, a top edge of the display area is selected as the separate location. The first label is a closest label in the body of content that has a specified positional relationship to the first portion. The first label is one of a heading, a filename, a start tag, a programming-language statement, and a user-defined category name. The first label is a member of a user-selected group of labels, where the body of content includes labels that are not members of the group of labels. The display area is resized, where the separate location is a location in the display area, and the separate location is adjusted based on the resizing.

In another aspect of the invention, content is received for display in a display area. The content has an associated label, where the label has a normal position adjacent to, and not overlapping, the content. The content and the label are scrolled in one direction responsive to user input until the label substantially reaches a boundary of the display area. The label is fixed at the boundary, while the content continues to be scrolled, until no part of the content with which the label is associated is visible in the display area.

Particular implementations can include one or more of the following features. The label is above the content with which the label is associated, and the label is fixed to a top of the display area. The label is below the content with which the label is associated, and the label is fixed to a bottom of the display area.

In one aspect, the invention features methods and apparatus implementing techniques that receive user input scrolling a body of content in a display area in a first direction toward a first edge of the display area to display a label preceding a portion of the body of content as the body of content is scrolled in the first direction, where the label is associated with the portion. After the label is scrolled to the first edge of the display area the label is fixed at the first edge of the display area while the body of content continues to be scrolled in the first direction as long as, but no longer than, any part of the portion is visible in the display area.

In another aspect, the invention features a system for displaying information. The system includes means for displaying a user-selected part of a first portion of a body of content in a display area according to a rendering of the body of content. The body of content includes a first label for the first portion, and the rendering places the first label at a normal position adjacent to and not overlapping the first portion in the body of content. The system includes means for displaying the first label in the display area in the normal position relative to the first portion if displaying the first label in the normal position places the first label fully within the display area. The system also includes means for displaying the first label at a separate location only if displaying the first label in the normal position does not place the first label fully within the display area and only while any non-trivial part of the first portion is displayed in the display area. The separate location is distinct from normal location.

Particular implementations can include means for performing one or more of the following functions. The first label displayed at the separate location is visually differentiated from the first label displayed in the normal position. One of (i) a number of labels displayed at the separate location and (ii) an area of the separate location used to display the labels is limited. The first portion is scrolled to display the user-selected part The separate location is selected according to a relative relationship of the normal position to the first portion.

The invention can be implemented to realize one or more of the following advantages. A label associated with a subset of a group of information is visible in a pane when any part of the subset is visible in the pane. A user can scroll through the information quickly to find a desired subset without hunting for the precise location of labels. If a user quickly scrolls to an arbitrary location in the information, or if the user jumps to the arbitrary location (e.g., using a search feature), the user immediately sees the labels associated with the information at the arbitrary location.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A shows a document.

FIG. 1B shows the document displayed in a pane.

FIGS. 1C-1E show the document displayed in the pane after being scrolled.

FIG. 2A shows a spreadsheet document.

FIG. 2B shows the spreadsheet document in a pane.

FIGS. 2C-2F show the spreadsheet document in the pane after being scrolled.

FIG. 3A shows a dynamically-generated collection of thumbnail images.

FIG. 3B shows the collection of thumbnail images in a pane.

FIGS. 3C-3D show the collection of thumbnail images in the pane after being scrolled.

FIG. 4A shows an XML document.

FIG. 4B shows the XML document in a pane.

FIGS. 4C-4E show the XML document in the pane after being scrolled.

FIG. 5A shows a C program.

FIGS. 5B-5D show the C program in a pane after being scrolled.

FIG. 6 is a flowchart of a process for displaying labels in a pane.

Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION

This specification describes a user-interface design in which a label is displayed in a pane when a subset of information with which the label is associated is displayed in the pane. The label has a normal display position that is part of, and does not overlap, the displayed information. As the subset of information scrolls in a given direction, the label scrolls in a conventional manner until the label reaches a boundary of the pane. As long as the scrolling continues in the same direction and a non-trivial (that is, usable or identifiable) part of the subset of information with which the label is associated remains visible in the pane, the label remains fixed to the boundary of the pane. When the subset of information no longer is visible in the pane, the label scrolls out of the pane as well. Labels typically are adjacent to the associated subset of information in the plane of the pane when displayed in the normal display position. A body of information can include multiple subsets of information arranged in a linear order. Labels associated with the subsets of information have a position in the linear order that determines the normal display position of each label.

FIG. 1A shows a document 100 (e.g., a word-processing document) that includes a title 110, a heading 120, subheadings 130 and 140, and text blocks 150, 160, and 170. The title 110, the heading 120, and the subheadings 130 and 140 form a hierarchical set of labels. The subheading 140 is associated with the text block 170, and the subheading 130 is associated with text block 160. The heading 120 is associated with the subheadings 130 and 140 and with the text blocks 160 and 170. The title 110 is associated with the text blocks 150-170, the subheadings 130 and 140, and the heading 120. The foregoing associations exist by virtue of the relative physical positions of these parts of the document to each other on the displayed page or pages of the document.

FIG. 1B shows a pane 180 that includes a scroll bar 190. A user-selected portion of the document 100 is visible in the pane 180. The document 100 is scrolled all of the way to the top, so the title 110, the heading 120, the subheading 130, and the text block 150 are fully visible in their normal positions in the document 100. The text block 160 is partially obscured because it extends outside of the pane 180.

FIG. 1C shows the pane 180 after a user has scrolled down slightly in the document 100 (e.g., using the scroll bar 190 or cursor keys). The title 110 is fixed in the pane 180 because all of the text of the document 100 is associated with the title 110, and the text of the document 100 is still visible in the pane 180. In a conventional system, the title 110 would have scrolled out of the pane 180 as the user scrolled down in the document 100. The heading 120 and the subheading 130 have scrolled up in their normal positions adjacent to text box 160 as the user scrolled down.

FIG. 1D shows the pane 180 after the user has scrolled down farther in the document 100. The title 110 is still fixed in the pane 180. Part of the text box 160 has scrolled out of the pane 180. The heading 120 and the subheading 130 are fixed in the pane 180 because both are associated with the text box 160, and part of the text box 160 is still visible. The subheading 140 has scrolled up normally as the user scrolled down.

FIG. 1E shows the pane 180 after the user has scrolled down even farther in the document 100. The title 110 and the heading 120 are still fixed in the pane 180. All of the text box 160 has scrolled out of the pane 180, so the subheading 130 no longer is fixed because no text associated with subheading 130 is visible in the pane 180. If the user were to scroll back up in the document 100 far enough that part of the text block 160 (e.g., the line “which . . . Representatives.”) reappeared, the subheading 130 would again be fixed below the heading 120. The subheading 140 has scrolled up normally as the user scrolled down and will remain visible as long as part of the text box 170 is visible.

Sometimes it is not desired to display all of the levels of a hierarchical set of labels, or to fix all the labels that could be fixed. For example, fixing the title 110 in FIGS. 1C-1E may be of limited use because all of the text of the document 100 is associated with the title 110. A display system can specify which labels are necessary or useful to fix and allow the other labels to scroll normally. What levels of labels or kinds of labels (e.g., headings, table headings, and figure captions) to fix can also be user-selectable. A user can decide whether to fix labels, or whether to allow labels to scroll in a conventional manner.

The discussion of FIGS. 1A-1E assumes that the labels in the document 100 have already been identified. Labels can be identified explicitly or implicitly. In a word-processing environment, the title 110, the heading 120, and the subheadings 130 and 140 typically have styles associated with them. The styles allow a word-processing application to identify the relevant labels and the subsets(s) of document 100 with which each label is associated. For example, in an environment that uses hierarchical labels, content between two labels at the same level of the hierarchy can be associated with the first label, with the second label, or with a label specified by a user.

In an application that processes documents that do not contain information explicitly identifying labels, a document can be processed to infer the existence of labels based on properties of the text. For example, a method that examines the layout (e.g., paragraph length and word position) and text properties (e.g., font size, underlining, and bolding) of the document can be used to find labels. This method can also be used to find labels such as captions for figures, tables, or text boxes. The figure, table, or text box is identified in the document, and a caption associated with the object is found by examining the layout and text properties of text adjacent to the object.

FIG. 2A shows a spreadsheet document 200 that includes column labels 204-214 and row labels 230-256. Labels 216-222 are associated with areas (i.e., both rows and columns) of the document 200. The document 200 also includes blocks of cells 260-266. Each cell within the blocks of cells is uniquely identifiable by the combination of a row coordinate and a column coordinate.

FIG. 2B shows a pane 280 that includes a vertical scroll bar 290 and a horizontal scroll bar 295. A portion of the document 200 is visible in the pane 280. The document 200 is scrolled all of the way to the top left corner, so the column labels 204-208, the labels 216 and 220, the row labels 230-236 and 250-252, and the block of cells 260 are fully visible in their normal positions in the document 200 (that is, their positions in the document 200 shown in FIG. 2A).

FIG. 2C shows the pane 280 after a user has scrolled down in the document 200. The rows containing column labels 204-208 and the labels 216 and 220 are fixed because portions of the document 200 associated with these labels are still visible in the pane 280. The rows associated with row labels 230-234 and 250-252 have scrolled out of pane 280, so the row labels 230-234 and 250-252 no longer are visible. The rows containing labels 218 and 222 and the row labels 240-242 and 254-256 have scrolled into the pane 280 in a normal manner as the user scrolled down.

FIG. 2D shows the pane 280 after the user has scrolled down farther in the document 200. The row containing column labels 204-208 remains fixed in the pane 280, but the row containing labels 218 and 222 has replaced the row containing labels 216 and 220 because no portion of the document 200 that is associated with the labels 216 and 220 is visible.

FIG. 2E shows the pane 280 after the user has scrolled up and to the right in the document 200. The row containing labels 216 and 220 again is fixed, as is the column containing row labels 232-236. Because the columns associated with column labels 204 and 206 have scrolled out of the pane 280, the column labels 204 and 206 are not visible.

FIG. 2F shows the pane 280 after a user has scrolled down and to the right in the document 200. The label 222, the row label 256, and column labels 212 and 214 are fixed because cells from the block of cells 266 are associated with these labels and are visible.

The discussion of FIGS. 2A-2F assumes that the labels in the document 200 have already been identified. A user can explicitly identify labels in a spreadsheet environment (e.g., by assigning a label type to a spreadsheet cell). The existence of labels can also be inferred, for example, by recognizing patterns in the contents of the spreadsheet cells.

FIG. 3A shows a collection 300 of thumbnail images. The collection 300 includes thumbnail images 310-324, each of which is an image of a page in a document. Headings 360, 364, and 368 separate the thumbnail images 310-324 by document. Therefore, thumbnail images 310-314 are part of a first document, thumbnail images 316-318 are part of a second document, and thumbnail images 320-324 are part of a third document. The headings 360, 364, and 368 display information about the document to which the respective heading's thumbnail images belong (e.g., a title, number of pages, filename, directory, file size, author, and/or date of creation). Icons 361, 365, and 369 are displayed next to the headings 360, 364, and 368. The icons 361, 365, and 369 graphically indicate the file type of the corresponding document. Labels 340-354 display information associated with the respective thumbnail image 310-324 (e.g., page number or layout information).

The collection 300 is generated dynamically. That is, the visual presentation of the images and headings displayed in collection 300 is not stored in a file, but is assembled dynamically from the documents.

FIG. 3B shows a pane 380 in which the collection 300 is displayed. Thumbnail images 310-318, headings 360 and 364, icons 361 and 365, and labels 340-344 are visible. Labels 346-348, which are associated with thumbnail images 316-318 and are located below the images, are not visible in the pane 380. In one implementation, such labels are fixed at the bottom of the pane 380 whenever the associated thumbnail images 316-318 are partially visible. The labels are fixed at the bottom of the pane 380 because the position of the label is below the image with which it is associated. A slider 385 allows a user to vary the size of the thumbnail images 310-318. A scroll bar 390 allows the user to scroll through one or more documents to see all of the thumbnail images.

FIG. 3C shows the pane 380 after the user has scrolled down. Labels 346 and 348 are now visible. Heading 360 and icon 361 are fixed at the top of the pane 380 because the associated thumbnail images 310-314 are visible. A new heading 368 and icon 369 have scrolled into the pane 380.

FIG. 3D shows the pane 380 after the user has scrolled down farther. The heading 364 and icon 365 have replaced the heading 360 and the icon 361 because thumbnail images 310-314 have scrolled out of the pane 380. Thumbnail images 320-324 have scrolled into the pane 380.

In another implementation, collection 300 and the user interface displays illustrated in FIGS. 3B-3D are generated by an image viewing or image editing application. The thumbnail images 310-324 are individual images that are associated with the respective headings 360, 364, and 368 because the thumbnail images 310-314 share one or more common traits, the thumbnail images 316-318 share one or more common traits that are different from the traits shared by the thumbnail images 310-314, and the thumbnail images 320-324 share one or more common traits that are different from the traits shared by the thumbnail images 310-318. Examples of common traits include: being stored in the same directory in a file system, having been created on the same date, or having been grouped together by the user. At least one of the common traits is indicated by the corresponding heading 360, 364, or 368.

Fixing labels in a display area while scrolling is useful in a markup language editing context. For example, in Extensible Markup Language (XML) documents, elements are defined using a start tag and an end tag. The end tag is an explicit end marker, so text between the start tag and the end tag is an element's content. An element can contain other elements. FIG. 4A shows an XML document 400 that contains start tags 410-412 and 415 and end tags 431 and 434.

FIG. 4B shows a pane 480 in an editing application. The pane 480 includes a scroll bar 490. A portion of the XML document 400 is visible in the pane 480. The XML program 400 is scrolled all of the way to the top, so the start tags 410-412 and the end tags 431 and 434 are visible in their normal positions in the XML document 400.

FIG. 4C shows the pane 480 after a user has scrolled down one line in the XML document 400. The start tag 410 for the element “person” is fixed in the pane 480 because contents of the element “person” are visible. In a conventional editing application, the start tag 410 would scroll out of the pane 480 as the user scrolled down one line in the XML document 400. The start tag 411 and the end tag 431 have scrolled out of pane 480 because no content associated with the element “name” is visible in the pane 480.

FIG. 4D shows the pane 480 after the user has scrolled down farther in the X document 400. The start tags 410 and 412 are fixed in the pane 480 because content associated with the elements “person” and “children” is still visible.

FIG. 4E shows the pane 480 in an alternative implementation. The fixed tags—start tags 410, 412, and 415—are all displayed on the same line at the top of the pane 480, thus saving space in the pane 480.

FIG. 5A shows a program 500 written in the C programming language. The program 500 includes an “include” directive 510, a function header 520, a declaration 530, a “for” statement 540, and an “if” statement 550. The program 500 also includes a comment 560, a return statement 575, opening brace 524, and closing braces 526, 546, and 556. An opening brace and a closing brace (an explicit end marker) enclose portions of a C program that are associated with a label. For example, the opening brace 524 and the closing brace 526 enclose a portion of the program 500 that is associated with the function header 520.

FIG. 5B shows a portion of the program 500 displayed in the pane 580. The pane 580 includes a scroll bar 590. The contents of the pane 580 have been scrolled, and the function header 520 is fixed at the top of the pane 580. The function header 520 is fixed because a portion of the program 500 that is associated with the function header 520 is visible in the pane 580. The directive 510 has scrolled out of the pane 580, as has opening brace 524.

FIG. 5C shows the pane 580 after a user has scrolled down farther in the program 500. The declaration 530 and the comment 560 have scrolled out of the pane 580, and the function header 520, the statement 540, and the statement 550 are fixed. Closing braces 546 and 556 are visible in the pane 580 and indicate where the portions of the program 500 that are associated with the statements 540 and 550 respectively end.

FIG. 5D shows the pane 580 after a user has scrolled almost to the end of the program 500. Statements 540 and 550 have scrolled out of the pane 580 because the portions of the program 500 with which statements 540 and 550 are associated are not visible in the pane 580. The function header 520 is still fixed at the top of pane 580 because the function header 520 is associated with statement 575.

In an alternative implementation, opening braces are fixed in a pane along with the label with which the opening braces arc associated. For example, in FIG. 5B, the opening brace 524 would be fixed on the line below, or on the same line as, the function header 520.

As shown in FIG. 6, a process 600 receives a body of information that is to be displayed in a pane (step 610). The body of information includes subsets of information that have associated visible labels. The labels are part of the information to be displayed and typically occupy specific locations in the information. For example, a label that is a heading typically is located just before the information with which the heading is associated.

When the body of information is too extensive to display using the settings of the pane (e.g., zoom), only a portion of the information is displayed (step 620). The process 600 determines which subset or subsets of information are visible in the pane (step 630). The process 600 also determines whether the label or labels associated with any visible subsets are visible at their specific location in the information (step 640). That is, the process 600 determines whether a label with which a visible subset is associated is outside of the pane.

If the label for the visible subset is outside of the pane, the label is fixed along a border of the pane (step 650). When a user is scrolling the information, step 650 fixes the label to the border of the pane. In one implementation, labels can be fixed at a pre-selected location other than the border of the pane. For example, if the label for a visible subset is outside of the pane, the label can be displayed in a popup pane that overlies the main pane in which the information is displayed or in a second pane that does not overlie the main pane. Alternatively, an expanded version of the label can be displayed semi-transparently in the background of the main pane, and the information can be displayed opaquely over it.

In one implementation, labels are fixed in a pane when subsets of information are accessed using a method other than scrolling. For example, if a user searches for a particular term in a document and the application jumps to a portion of the document containing the search term, labels associated with any visible subsets of the information can be fixed in the pane as described above.

In another implementation, labels that are not being displayed at their normal location in the information (e.g., labels that have been fixed to the border of the pane) are visually differentiated. For example, such labels can be displayed in a special color or can have one or more changed visual attributes, such as transparency.

In yet another implementation, the number of labels that are fixed in a pane is limited. Alternatively, the area of the pane in which labels are fixed is limited. In one example, the area of the pane in which labels are fixed is limited to one quarter of the total area of the pane. When fixed labels occupy a quarter of the total area, some labels that normally would be fixed are removed. if the labels are part of a hierarchical set of labels, the highest (alternatively, lowest) labels in the hierarchy can be removed.

The invention and all of the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structural means disclosed in this specification and structural equivalents thereof, or in combinations of them. The invention can be implemented as one or more computer program products, i.e., one or more computer programs tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program (also known as a program, software, software application, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file. A program can be stored in a portion of a file that holds other programs or data, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification, including the method steps of the invention, can be performed by one or more programmable processors executing one or more computer programs to perform functions of the invention by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, the invention can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.

The invention has been described in terms of particular embodiments. Other embodiments are within the scope of the following claims. For example, the steps of the invention can be performed in a different order and still achieve desirable results. 

What is claimed is: 1-47. (canceled)
 48. A computer implemented method for displaying a document on a display device, comprising: in response to a user input, displaying at least a portion of a document organizable by section labels; displaying a first section label corresponding to a first section of the document, wherein the entire first section of the document cannot be displayed at the same time; in response to user input, scrolling the document to reveal undisplayed portions of the first section while simultaneously maintaining display of the first section label at a location; in response to user input, scrolling the document to reveal a second section label corresponding to a second section of the document, wherein the second section label is positioned between the first section and the second section and scrolls with the second section while the first section label remains at the location; and in response to the second section label being scrolled to the location of the first section label, replacing the first section label with the second section label at the location.
 49. The method of claim 48, wherein the display device has a viewing area and replacing the first section label with the second section label at the location includes scrolling the first section label out of the viewing area while the second section label scrolls into the location.
 50. The method of claim 48, further comprising: in response to user input, scrolling the document to reveal a third section label corresponding to a third section of the document, wherein the third section label is positioned between the second section and the third section and scrolls with the third section while the second section label remains at the location; and in response to the third section label being scrolled to the location of the second section label, replacing the second section label with the third section label at the location.
 51. The method of claim 48, wherein the display device is a mobile computer.
 52. The method of claim 48, wherein the document is accessed via a communication network.
 53. The method of claim 48, wherein the document is accessed via a user interface for a file system.
 54. The method of claim 48, wherein the document is a word-processing document, a spreadsheet document, a portable document format (PDF) document.
 55. A computing system, comprising: a display; a processor; a user interface executable by the processor and configured to: in response to a user input, display at least a portion of a document organizable by section labels; display a first section label corresponding to a first section of the document, wherein the entire first section of the document cannot be displayed at the same time; in response to user input, scroll the document to reveal undisplayed portions of the first section while simultaneously maintaining display of the first section label at a location; in response to user input, scroll the document to reveal a second section label corresponding to a second section of the document, wherein the second section label is positioned between the first section and the second section and scrolls with the second section while the first section label remains at the location; and in response to the second section label being scrolled to the location of the first section label, replace the first section label with the second section label at the location.
 56. The system of claim 55, wherein the display has a viewing area and the user interface replaces the first section label with the second section label at the location by scrolling the first section label out of the viewing area while the second section label scrolls into the location.
 57. The system of claim 55, wherein the user interface is further configured to: in response to user input, scroll the document to reveal a third section label corresponding to a third section of the document, wherein the third section label is positioned between the second section and the third section and scrolls with the third section while the second section label remains at the location; and in response to the third section label being scrolled to the location of the second section label, replace the second section label with the third section label at the location.
 58. The system of claim 55, wherein the computing system is a mobile computing device and the user input is tactile input.
 59. The system of claim 55, wherein the document is accessed via at least one of a communication network and a file system.
 60. The system of claim 55, wherein the document is a word-processing document, a spreadsheet document, a portable document format (PDF) document.
 61. A non-transient computer program product encoded with instructions that when executed by one or more processors cause a process for displaying a document on a display device, the process comprising: in response to a user input, display at least a portion of a document organizable by section labels; display a first section label corresponding to a first section of the document, wherein the entire first section of the document cannot be displayed at the same time; in response to user input, scroll the document to reveal undisplayed portions of the first section while simultaneously maintaining display of the first section label at a location; in response to user input, scroll the document to reveal a second section label corresponding to a second section of the document, wherein the second section label is positioned between the first section and the second section and scrolls with the second section while the first section label remains at the location; and in response to the second section label being scrolled to the location of the first section label, replace the first section label with the second section label at the location.
 62. The computer program product of claim 61, wherein the display device has a viewing area and replacing the first section label with the second section label at the location includes scrolling the first section label out of the viewing area while the second section label scrolls into the location.
 63. The computer program product of claim 61, the process further comprising: in response to user input, scroll the document to reveal a third section label corresponding to a third section of the document, wherein the third section label is positioned between the second section and the third section and scrolls with the third section while the second section label remains at the location; and in response to the third section label being scrolled to the location of the second section label, replace the second section label with the third section label at the location.
 64. The computer program product of claim 61, wherein the display device is a mobile computer.
 65. The computer program product of claim 61, wherein the document is accessed via at least one of a communication network and a file system.
 66. The computer program product of claim 61, wherein the document is a word-processing document, a spreadsheet document, a portable document format (PDF) document.
 67. The computer program product of claim 61, wherein the user input is tactile input. 